package com.otr.ai;

import com.otr.ai.service.WeatherService;
import org.springframework.ai.tool.ToolCallbackProvider;
import org.springframework.ai.tool.method.MethodToolCallbackProvider;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;

@SpringBootApplication
public class McpServerStdioApplication {

  public static void main(String[] args) {
    SpringApplication.run(McpServerStdioApplication.class, args);
  }


  /**
   * 注册MCP Tools
   *
   * <p>ToolCallbackProvider是 Spring AI 中的一个接口，用于定义工具发现机制，
   *
   * <p>主要负责将那些使用 @Tool 注解标记的方法转换为工具回调对象，
   *
   * <p>并提供给ChatClient 或ChatModel 使用，以便 AI 模型能够在对话过程中调用这些工具。
   */
  @Bean
  public ToolCallbackProvider serverTools(WeatherService weatherService) {
    return MethodToolCallbackProvider.builder().toolObjects(weatherService).build();
  }
}
